package com.diver.flinkdemo.service;

import com.diver.flinkdemo.entity.ResultConfig;
import org.apache.http.entity.ContentType;

import java.io.File;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 *
 * @Description:
 * @Author: zhangB
 * @Date: 2021/12/21 15:02
 */
public interface IHttpService {

    /**
     * get请求
     * @param url 请求地址
     * @param params 参数 可为null
     * @param headers 请求头 可为null
     * @param charset 字符集
     * @return
     */
    ResultConfig<String> doGet(String url, Map<String, String> params, Map<String, String> headers, String charset);


    /**
     * post请求
     * @param url 请求地址
     * @param params 参数
     * @param headers 请求头
     * @param charset 字符集
     * @return
     */
    ResultConfig<String> doPost(String url, Map<String, String> headers,
                                Map<String, String> params, String charset);

    /**
     * post请求
     * @param url 请求地址
     * @param headers 请求头
     * @param body 字符串请求体
     * @param contentType
     * @param charset 字符集
     * @return
     */
    ResultConfig<String> doStringEntityPost(String url, Map<String, String> headers, String body,
                                            ContentType contentType, String charset);

    /**
     * 下载文件
     * @param url 下载地址
     * @param fileDir 文件存放的路径
     * @return
     */
    ResultConfig downloadFile(String url, String fileDir);

    /**
     * 上传文件
     * @param url 上传地址
     * @param paramsName 参数名
     * @param srcFile 文件
     * @return
     */
    ResultConfig uploadFile(String url, String paramsName, File srcFile);

}
